home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / joke / inc_wp / src / inc_wp.bas < prev    next >
Encoding:
BASIC Source File  |  1995-08-12  |  3.8 KB  |  122 lines

  1. 1000 ' SAVE "INC_WP.BAS",A:SAVE "INC_WP.BAK",A
  2. 1010 ' 手書きワープロ
  3. 1020 ' 1995.8.12(Sat)
  4. 1030 ' (C) by Kota2 of BigCabin 
  5. 1040 ' === Main routine ===
  6. 1050 GOSUB *ALL_INITIALIZE
  7. 1060 WHILE MAIN_LOOP=0
  8. 1070     GOSUB *RESTART
  9. 1080     GOSUB *MOJI
  10. 1090     GOSUB *LOOP_CHECK
  11. 1100     IF MAIN_LOOP=0 THEN GOSUB *LITTLE
  12. 1110 WEND
  13. 1120 GOSUB *END
  14. 1130 END
  15. 1140 ' --- 全初期化 ---
  16. 1150 *ALL_INITIALIZE
  17. 1160     X_MAX=640
  18. 1170     Y_MAX=480
  19. 1180     DOT=20:' 変換後の文字の大きさ(ここをかえると・・・)
  20. 1190     SCREEN@ 0
  21. 1200     CLS
  22. 1210     LOAD@ "INC_WP.TIF" 
  23. 1220     WAIT 300
  24. 1230     CLS
  25. 1240     MOUSE 0
  26. 1250     MOUSE 1,,,1
  27. 1260     MOUSE 4,0,Y_MAX/2,X_MAX-1,Y_MAX-1
  28. 1270     PRINT
  29. 1280     PRINT
  30. 1290     PRINT
  31. 1300     PRINT "                           === 使い方 ==="
  32. 1310     PRINT
  33. 1320     PRINT
  34. 1330     PRINT "                   マウスを使って、操作します。"
  35. 1340     PRINT 
  36. 1350     PRINT "           画面の下半分に、マウスの左ボタンを押しながら、"
  37. 1360     PRINT "                      文字を書きます。大きさは、自由です。"
  38. 1370     PRINT "              何文字か書けたら、右ボタンを押します。"
  39. 1380     PRINT 
  40. 1390     PRINT "              すると、書いた文字が上に縮小されます。"
  41. 1400     PRINT "             この調子で、書きたいだけ書いてください。"
  42. 1410     PRINT "           何も書いてない時に、右ボタンを押すと、終了です。"
  43. 1420     PRINT 
  44. 1430     PRINT 
  45. 1440     PRINT "               マウスの左ボタンを押すと始まります。"
  46. 1450     PRINT 
  47. 1460     PRINT 
  48. 1470     PRINT "                    (C) by (BigCabinの)こたつ"
  49. 1480     WHILE MOUSE(2,0)<>-1:WEND 
  50. 1490     WAIT 70
  51. 1500     CLS
  52. 1510     FOR I=DOT+4 TO Y_MAX/2-1 STEP DOT+4
  53. 1520         LINE (10,I)-(X_MAX-10,I),PSET
  54. 1530     NEXT I
  55. 1540 RETURN
  56. 1550 ' --- 2次初期化 ---
  57. 1560 *RESTART
  58. 1570     UP   = 999
  59. 1580     DOWN =-999
  60. 1590     LEFT = 999
  61. 1600     RIGHT=-999
  62. 1610     LINE (0,Y_MAX/2)-(X_MAX,Y_MAX),PSET,0,BF
  63. 1620         MOUSE_XX=MOUSE(0)
  64. 1630         MOUSE_YY=MOUSE(1)
  65. 1640 RETURN
  66. 1650 ' --- 文字書き ---
  67. 1660 *MOJI
  68. 1670     MOJI=0
  69. 1680     WHILE MOJI=0
  70. 1690         MOUSE_X=MOUSE(0)
  71. 1700         MOUSE_Y=MOUSE(1)
  72. 1710         ' PRINT MOUSE_X,MOUSE_Y
  73. 1720         IF MOUSE(2,0) THEN GOSUB *LIMIT:                                                LINE(MOUSE_X,MOUSE_Y)-(MOUSE_XX,MOUSE_YY),PSET 
  74. 1730         IF MOUSE(2,1) THEN MOJI=-1
  75. 1740         MOUSE_XX=MOUSE_X
  76. 1750         MOUSE_YY=MOUSE_Y
  77. 1760     WEND
  78. 1770 RETURN
  79. 1780 ' --- 縮小 ---
  80. 1790 *LITTLE
  81. 1800     ' PRINT UP,DOWN,LEFT,RIGHT
  82. 1810     ' LINE (LEFT-1,UP-1)-(RIGHT+1,DOWN+1),PSET,,B
  83. 1820     HI=(RIGHT-LEFT)/(DOWN-UP):' 縦に対する横の比
  84. 1830     RITU=(DOWN-UP)/DOT       :' 16ドットに対する倍率  
  85. 1840     IF X_MAX-LINE_X-10<DOT*HI THEN LINE_X=0:LINE_Y=LINE_Y+DOT+4
  86. 1850     FOR Y=0 TO DOT
  87. 1860         FOR X=0 TO DOT*HI
  88. 1870             ' PSET(X,Y),3
  89. 1880             ' PSET(X*RITU+LEFT,Y*RITU+UP),5
  90. 1890             GOSUB *TEN
  91. 1900             IF TEN<>0 THEN PSET(X+10+LINE_X,Y+2+LINE_Y)
  92. 1910         NEXT X
  93. 1920     NEXT Y
  94. 1930     LINE_X=LINE_X+DOT*HI+2
  95. 1940 RETURN
  96. 1950 ' --- 終了 ---
  97. 1960 *END
  98. 1970 MOUSE 5
  99. 1980 END
  100. 1990 ' --- 範囲更新 ---
  101. 2000 *LIMIT
  102. 2010     IF UP   >MOUSE_Y THEN UP   =MOUSE_Y
  103. 2020     IF DOWN <MOUSE_Y THEN DOWN =MOUSE_Y
  104. 2030     IF LEFT >MOUSE_X THEN LEFT =MOUSE_X
  105. 2040     IF RIGHT<MOUSE_X THEN RIGHT=MOUSE_X
  106. 2050 RETURN
  107. 2060 ' --- 点を打つかどうかの処理 ---
  108. 2070 *TEN
  109. 2080     TEN=0
  110. 2090     TEN_X=X*RITU+LEFT
  111. 2100     TEN_Y=Y*RITU+UP
  112. 2110     FOR TY=TEN_Y-RITU/2 TO TEN_Y+RITU/2
  113. 2120         FOR TX=TEN_X-RITU/2 TO TEN_X+RITU/2
  114. 2130             IF POINT(TX,TY)=-1 THEN TEN=TEN+1 
  115. 2140         NEXT TX
  116. 2150     NEXT TY
  117. 2160 RETURN
  118. 2170 ' --- メインループ終了の判定 ---
  119. 2180 *LOOP_CHECK
  120. 2190     IF UP=999 AND DOWN=-999 AND LEFT=999 AND RIGHT =-999 THEN                       MAIN_LOOP=-1
  121. 2200 RETURN
  122.